--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/frontend/contextMenuStyles.test.js e5756d7ab065475a18acdcafc008a767fcff87e0 (e5756d7a) Text, 2.36 KB
Tff7b72import Tb4b4b4{ Te6edf3readFileSync Tb4b4b4} Tff7b72from Ta5d6ff"fs"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3join Tb4b4b4} Tff7b72from Ta5d6ff"path"Tb4b4b4;
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3itTb4b4b4, Te6edf3expect Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72const Te6edf3root Tff7b72= Te6edf3processTb4b4b4.Te6edf3cwdTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3readProjectFileTb4b4b4(Te6edf3relativePathTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3readFileSyncTb4b4b4(Te6edf3joinTb4b4b4(Te6edf3rootTb4b4b4, Te6edf3relativePathTb4b4b4)Tb4b4b4, Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3describeTb4b4b4(Ta5d6ff"context menu styling"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"defines shared classes in style.css"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3css Tff7b72= Te6edf3readProjectFileTb4b4b4(Ta5d6ff"meshchatx/src/frontend/style.css"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toMatchTb4b4b4(Ta5d6ff/\.context-menu-panel\s*\{/Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toMatchTb4b4b4(Ta5d6ff/\.context-item\s*\{/Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toMatchTb4b4b4(Ta5d6ff/\.context-menu-divider\s*\{/Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toMatchTb4b4b4(Ta5d6ff/\.context-menu-section-label\s*\{/Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"min-w-48"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"rounded-xl"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3cssTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"shadow-xl"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"ContextMenuPanel and ContextMenuItem components define the shared CSS classes"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3panel Tff7b72= Te6edf3readProjectFileTb4b4b4(Ta5d6ff"meshchatx/src/frontend/components/contextmenu/ContextMenuPanel.vue"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3item Tff7b72= Te6edf3readProjectFileTb4b4b4(Ta5d6ff"meshchatx/src/frontend/components/contextmenu/ContextMenuItem.vue"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3panelTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"context-menu-panel"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3itemTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"context-item"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"ContextMenuPanel clamps position to the viewport via clampFloatingToViewport"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3panel Tff7b72= Te6edf3readProjectFileTb4b4b4(Ta5d6ff"meshchatx/src/frontend/components/contextmenu/ContextMenuPanel.vue"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3panelTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"clampFloatingToViewport"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3panelTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff'ref="panel"'Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3panelTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"repositionToViewport"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3panelTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"resize"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"uses ContextMenuPanel and ContextMenuItem on all right-click context menus"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3files Tff7b72= Tb4b4b4[
Ta5d6ff"meshchatx/src/frontend/components/contacts/ContactsPage.vue"Tb4b4b4,
Ta5d6ff"meshchatx/src/frontend/components/messages/MessagesSidebar.vue"Tb4b4b4,
Ta5d6ff"meshchatx/src/frontend/components/messages/ConversationViewer.vue"Tb4b4b4,
Ta5d6ff"meshchatx/src/frontend/components/nomadnetwork/NomadNetworkSidebar.vue"Tb4b4b4,
Ta5d6ff"meshchatx/src/frontend/components/map/MapPage.vue"Tb4b4b4,
Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72const Te6edf3f Tff7b72of Te6edf3filesTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3src Tff7b72= Te6edf3readProjectFileTb4b4b4(Te6edf3fTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3srcTb4b4b4, Te6edf3fTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"ContextMenuPanel"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3srcTb4b4b4, Te6edf3fTb4b4b4)Tb4b4b4.Te6edf3toContainTb4b4b4(Ta5d6ff"ContextMenuItem"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────